package com.heima.user.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.heima.user.dtos.UserDto;
import com.heima.user.dtos.UserFollowDto;
import com.heima.model.common.dtos.PageRequestDto;
import com.heima.user.dtos.LoginDto;
import com.heima.user.dtos.LoginResDto;
import com.heima.user.pojos.ApUser;
import com.heima.user.pojos.ApUserFollow;
import com.heima.wemedia.dtos.WmAuthDto;

/**
 * @author 郭文杰
 * @description 针对表【ap_user(APP用户信息表)】的数据库操作Service
 * @createDate 2023-12-01 16:11:10
 */
public interface ApUserService extends IService<ApUser> {

    LoginResDto loginAuth(LoginDto loginDto);

    /**
     * 用户审核 分页查询
     *
     * @param pageRequestDto 前端dto 分页查询参数 页码 每页显示条数 条件
     * @return 返回结果
     */
    Page authPage(PageRequestDto pageRequestDto);

    /**
     * 用户审核通过
     *
     * @param wmAuthDto 前端dto
     */
    void authPass(WmAuthDto wmAuthDto);

    /**
     * 用户审核驳回
     *
     * @param wmAuthDto 前端dto
     */
    void authFail(WmAuthDto wmAuthDto);

    /**
     * 用户关注与取消
     *
     * @param userFollowDto 前端dto
     */
    void userFollow(UserFollowDto userFollowDto);

    /**
     * 根据关注者id,查询当前用户是否关注了此用户
     *
     * @param followId 关注者id
     * @return 关注用户
     */
    ApUserFollow getUserFollow(Integer userId, Integer followId);

    /**
     * 根据dto条件查询app端用户信息
     *
     * @param userDto 前端dto查询条件
     * @return app用户信息
     */
    ApUser getUser(UserDto userDto);
}
